/**
 * 复制并排除
 * @param {Object} obj 
 * @param {String} 排除项  如果缺少排除项 ,复制所有属性

 */
export function copyex(obj, 排除项) {
	let p = {}
	for (var key in obj) { //遍历对象的所有属性，包括原型链上的所有属性
		if (排除项 && 排除项.includes(key)) continue;
		p[key] = obj[key];
	}
	return p;
}
/**
 * 复制对象
 * @param {Object} obj 
 * @param {String} 包含项 如果缺少包含项 ,无法复制任何属性

 */
export function copy(obj, 包含项) {
	let p = {}
	for (var key in obj) { //遍历对象的所有属性，包括原型链上的所有属性
		if (包含项 && 包含项.includes(key))
			p[key] = obj[key];
	}
	return p;
}
// var jj={
//     name:"dpi",
//     mmd:"2342",
//     xke:"12354",
//     xkcv:"1cx3"

// };
// console.log(copy(jj))
// console.log(copyex(jj))
// console.log(copy(jj,['mmd','name']))
// console.log(copyex(jj,['mmd','name']))

export function set2Jsonstr(set) {
	if (set == null || set.size == 0) return null;
	//return JSON.stringify(set) ;
	return JSON.stringify(Array.from(set));
}
export function jsonstr2Set(setstr) {
	if (setstr == null || setstr == "") return new Set();
	//return JSON.parse(setstr) ;
	return new Set(JSON.parse(setstr));
}

export function map2Jsonstr(map) {
	return JSON.stringify(mapToObj(map));

}
export function jsonstr2Map(str) {
	if (str == null || str == '') return new Map();
	return ObjToMap(JSON.parse(str));
}

export function arrToMap(arr) {
	var map = new Map(arr.map(function(value, key) {
		return [key, value]
	}));
	return map
}
export function mapToObj(map) {
	var obj = {};
	for (let [key, value] of map) {
		obj[key] = value;
	}
	return obj;
}

export function ObjToMap(obj) {
	var map = new Map();
	for (let key in obj) {
		map.set(key, obj[key]);
	}
	return map;
}

export function foreachObj(obj,call) {
	for (let p in obj) {
		if (typeof(obj[p]) == "function") {
			;
		} else {
			call(p,obj[p]);
		}
	}
}

// var arr = ['one', 'two', 'three'];
// console.log(arrToMap (arr));  
// var map = new Map();
// map.set(1, '111').set(2, '222').set(3, '333');
// console.log(mapToObj (map));
//
// var obj = {1: 'one', 2: 'two', 3: 'three'};
// console.log(ObjToMap (obj));
//

// var set=new Set();
// set.add(3);
// set.add([2,54]);
// set.add("asdfg");
// var s=set2Jsonstr(set);
// console.log(s)
// var set1=jsonstr2Set(s);
// console .log(set1)
